--- id: TASK-017 title: 'TUI: In-panel search/filter with /' status: To Do assignee: [] created_date: '2026-06-12 04:21' labels: - tui - feature dependencies: - TASK-005 - TASK-007 priority: medium ordinal: 17000 --- ## Description When a panel is focused, pressing `/` opens an inline filter input at the bottom of the panel. Typing filters the panel's items in real time (case-insensitive substring match). `Esc` clears the filter and closes the input. `Enter` locks the filter (input hides, filtered items remain visible with a `[filter: "…"]` badge in the border title). Applicable panels: News, Feeds, HN, Sports, Calendar. Implementation: - Add a `filter: str = ""` attribute to `DashPanel` or the item-layer widget - Pressing `/` focuses an `Input` widget docked at the bottom of the panel - `on_input_changed` re-renders the content filtered to matching items - `Esc` clears `filter` and dismisses the input - `Enter` keeps the filter active but hides the input; border title shows `[…]` Depends on: TASK-005 (focus), TASK-007 (item navigation) ## Acceptance Criteria - [ ] #1 / when panel is focused opens inline filter input - [ ] #2 Items filter in real time as user types - [ ] #3 Esc clears filter and hides input - [ ] #4 Active filter shown in border title - [ ] #5 Works in News, Feeds, HN, Sports, Calendar panels